﻿// 古词典 DICTIONARY.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
/*
https://algospot.com/judge/problem/read/DICTIONARY

问题：
作为一名业余考古学家，伊利诺伊·琼斯在芝加哥附近发现了古代文明的痕迹。其中包括这种语言的词典，词典中的单词都由英语的小写字母组成，但是词典中的单词顺序与英语中的顺序不同。发掘队想要知道这些单词是否根据非字母顺序排列，或者是因为字母的顺序与英语不同。

伊利诺伊·琼斯假设了在这种语言中，字母的顺序与英语不同，但是词典中的单词按照字典顺序排列。他想要从单词列表中推断出字母的相对顺序。

例如，假设词典中有五个单词gg、kia、lotte、lg、hanhwa按顺序排列。如果gg应该在kia之前，那么在这种语言中g必须在k之前。同样，k必须在l之前，l必须在h之前。我们还可以得出结论：lotte应该在lg之前，因此o必须在g之前。综合起来，我们可以确定这五个字母o、g、k、l、h的相对顺序。

给定按顺序排列的词典中的单词列表，请编写一个程序来计算字母的顺序。

输入：
输入的第一行是测试用例的数量C（1 <= C <= 50）。
每个测试用例的第一行是词典中包含的单词数N（1 <= N <= 1000）。
然后是N行，每行包含按顺序排列的词典中的一个单词。每个单词由小写字母组成，长度为1到20。单词不会重复出现。

输出：
对于每个测试用例，输出一行。如果字母顺序存在矛盾，则输出"INVALID HYPOTHESIS"；如果没有矛盾，则输出26个小写字母表示的字母顺序。如果有多个可能的顺序，则输出任意一个都可以。

示例输入：
3
3
ba
aa
ab
5
gg
kia
lotte
lg
hanhwa
6
dictionary
english
is
ordered
ordinary
this

示例输出：
INVALID HYPOTHESIS
ogklhabcdefijmnpqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
*/

int main()
{
    std::cout << "Hello World!\n";
}

 